package springboot;

import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

import org.springframework.util.StringUtils;

/**
 * 
 * 版权：(C) 版权所有 2000-2014 上海天好电子商务有限公司苏州分公司
 * <用户基本信息缓存>
 * <详细描述>
 * @author   lixiaojun
 * @version  $Id$
 * @since
 * @see
 */
public class UserCache {
    /**
     * 用户基本信息缓存 USERMAP
     */
    private static ConcurrentMap<String, MyWebSocket>  USERMAP = new ConcurrentHashMap<>();
    /**
     * 私有构造函数
     */
    public UserCache(){
        super();
    }
    /**
     * 
     *〈放入用户信息，上线操作〉
     *〈详细描述〉
     * @author lixiaojun
     * @param userBaseInfoDto userBaseInfoDto
     */
    public static void onLine(String userId, MyWebSocket userBaseInfoDto){
        if (userBaseInfoDto == null){
            return;
        }
        USERMAP.put(userId, userBaseInfoDto);
    }
    
    /**
     * 
     *〈获取用户信息〉
     *〈详细描述〉
     * @author lixiaojun
     * @param userId userId
     * @return UserBaseInfoDto用户信息
     */
    public static MyWebSocket getUserBaseInfoDto(String userId){
        if (StringUtils.isEmpty(userId)){
            return null;
        }
        if (USERMAP.containsKey(userId)){
            return USERMAP.get(userId);
        }
        return null;
    }
    
    /**
     * 
     *〈删除用户信息，退出下线操作〉
     *〈详细描述〉
     * @author lixiaojun
     * @param userId userId
     */
    public static void offLine(String userId){
        if (StringUtils.isEmpty(userId)){
            return;
        }
        if (USERMAP.containsKey(userId)){
            USERMAP.remove(userId);
        }
    }
}
